<?php
/* ###############################################################################
 *
 * $Id: mail.php 19 2014-09-20 19:04:47Z expertsoftware.i@gmail.com $
 *
 * システム名
 *   PHP Web フレームワーク [Ponzu]
 *
 * 機能
 *   メール ライブラリ
 *
 * バージョン
 *   0.0.0_0
 *
 * ライセンス
 *   LGPL v2.0
 *
 * 履歴
 *   2007/07/01 K.Sonohara
 *     新規作成。
 *
 * ###############################################################################*/

/**
 * メール送信
 * @access public
 * @param from 送信元
 * @param fromname 送信元名
 * @param to 送信先
 * @param toname 送信先名
 * @param subject タイトル
 * @param content 内容
 */
function sendMail(
  $from,
  $fromname = null,
  $to,
  $toname = null,
  $cc = null,
  $ccname = null,
  $bcc = null,
  $bccname = null,
  $subject,
  $content
) {
  mb_language("Ja") ;
  mb_internal_encoding(SITE_ENCODE) ;
  if ($toname != null) {
    $mailto = mb_encode_mimeheader($toname) ." <" . $to . ">";
  } else {
    $mailto = $to;
  }
  $f = null;
  if ($fromname != null) {
    $f = mb_encode_mimeheader($fromname) ." <" . $from . ">";
  } else {
    $f = $from;
  }
  $header = $from;
  $header .= "From: ".$f;
  if ($cc) {
    if ($ccname != null) {
      $header = "Cc: ".mb_encode_mimeheader($ccname) ." <" . $cc . ">";
    } else {
      $header = "Cc: ".$cc;
    }
  }
  if ($bcc) {
    if ($bccname != null) {
      $header = "Bcc: ".mb_encode_mimeheader($bccname) ." <" . $bcc . ">";
    } else {
      $header = "Bcc: ".$bcc;
    }
  }
  $header .= "\nReply-To: $from";
  $header .= "\nX-Mailer: ". SITE_NAME; 

  if (!defined('NOMAIL')) {
    mb_send_mail($mailto, $subject,$content, $header, ' -F "-" -f '. $from);
  } else {
    return $content;
  }
}

/**
 * メールテンプレート読み込み＋変数セット
 * @access public
 * @param name ファイル名
 * @param values 置換変数
 * @return 処理結果
 */
function templateMail($name, $values) {
  $lines = loadTextFile(CONFIG_HOME."/mail/".$name);
  foreach ($values as $k => $v) {
    $t = $v;
    if (is_array($v)) {
      for ($i = 0; $i < count($t); $i++) {
        if ($i) {
          $t = $t . " - ";
        }
        $t = $t . $v[$i];
      }
    }

    try {
      $lines = str_replace("%".$k."%", $t, $lines);
    }catch(Exception $e) {
    }
  }

  return $lines;
}

function mailText($text) {
	mb_internal_encoding(SITE_ENCODE);
	return mb_decode_mimeheader($text); 
}

function mailHostString($mailserver) {
	return "{" . $mailserver["hostname"] . ":" . $mailserver["port"] . $mailserver["option"] . "}";
}

function imapBoxList($mailserver, $username, $password) {
	$boxes = array();

	$mbox = imap_open(mailHostString($mailserver), $username, $password);

	$folders = imap_list($mbox, mailHostString($mailserver), "*");

	$count = 0;
	foreach ($folders as $folder) {
		$boxes[$count] = $folder;

		$count = $count + 1;
	}
	imap_close($mbox);

	sort($boxes);
	array_push($boxes, array_shift($boxes));

	return $boxes;
}





?>
